The human-machine interface is an important aspect of any interactive computing system. It is what allows a human user to control the system to perform useful tasks. The better the interface, the more deficient and effective the control and interaction.
Unfortunately, many user interfaces are exceedingly complex. Some are so complex that they require the user to read an entire book or take a training course. But requiring a user to read a book to learn how to interact with a computing application is a burden. Nevertheless, the increasing complexity, flexibility, and functionality of applications such as word processors, video and graphics editing software, financial analysis programs, and the like, have placed a premium on efficiently teaching users how to use the interface.
For example, video and computer game systems typically are configured to enable a player to play a number of different types of games such as, for example, puzzle games, strategy games, action games, etc. In video and computer game systems, there often are tensions between providing more challenging game play for experienced players, and attracting and providing enjoyable game experience for less experienced users. The latter group may be frustrated by, for example, complex game environments, user interfaces, and the like, that experienced users find challenging and enjoyable. Of course, even experienced players sometimes encounter difficulty playing certain games. For example, players who like puzzle and strategy games may have a hard time playing action games, and vice versa. Some puzzle games are harder than other puzzle games, e.g., because of the skill needed, the challenges involved, the time required, etc. Similar observations apply with respect to different types of games and/or applications, as well.
As a result of these and/or other difficulties, some players consult user or strategy guides. Such guides may come in book or magazine form. Other guides may be provided, for example, in online forums, on webpages, etc. Although useful guidance may be provided, a user consulting a guide that is external to the application may be taken away from the computing environment for some period of time. Having to frequently consult an external guide ultimately may have a negative impact on the user who might be inclined to think that the software is re simply too hard, not worth the time, etc.
To help address this situation, Nintendo developed and provided in games such as Super Mario for the Wii an in-game “Super Guide” helper system. A Super Guide typically is an in-game approach to providing help to a player who requests it. One way a Super Guide can work is by playing back previously recorded or simulated inputs of a designer, developer, or other person. Recorded input data may be stored (e.g., on a game ROM or disk) for playback as a Super Guide during the game, e.g., at the request of the user. In a way, the playback of the previously recorded inputs using the Super Guide is a form of automatic game play such that the game seems like it is playing itself. The playback of the previously recorded inputs can show a part of the solution to the player as if the designer, developer, or other person were playing the game. Such techniques have proven to be advantageous in terms of providing a player-selectable balance between allowing that player to “wrestle” with the game to a desired extent, and providing easy access to a solution while in the game environment.
Although Super Guide techniques are advantageous for at least the above-noted reasons, further improvements are still possible. As noted above, for example, some Super Guides work by recording and playing human input. As a result, the playback of the recorded data is subject to errors, deviations, abnormalities, randomness encountered during the initial recording, etc. Thus, even though designers, developers, and the sort often know generally how to accomplish a particular task, defeat an enemy, pass a level, etc., there sometimes are problems with the actual implementation of these ideas when actually playing through a game or portion of a game.
As a potentially more concrete example, a stylus or other pointing input device often is used to provide inputs. The use of the stylus or other handheld pointing device is subject to a large amount of human-specific action. These organic, human-specific actions are natural in actual game play but may not be appropriate for a Super Guide—like the difference between driving a sports car through hairpin turns and sitting in the passenger seat. Indeed, organic, jittery movements can often be recorded. This may be a function of, for example, hand shaking, lack of resolution on input interface (e.g., a touch screen), unnecessary little movements or corrected macro-movements, etc. Ultimately, the organic nature of the recorded input that is played back tends to distract the user from the solution being provided. Furthermore, because different people have different game play styles, the recorded data may not be consistent when multiple people are providing the inputs and/or as a result of other seeming randomness—even when one party provides all inputs. Similarly, a designer's style and skill may not be consistent with the normal level of skill of the gamer, as it may be too fast, too slow, unclear, etc. It will be appreciated that jittery, inconsistent Super Guide playbacks caused by the above-described and/or other phenomena may be distracting and ultimate may cause a player to have a negative impact—even though the Super Guide is supposed to make the game more enjoyable and easier to play.
In view of the foregoing, it will be appreciated that a more mechanical and automatic and less organic looking Super Guide would be desirable, at least from a user-perspective.
One aspect of certain exemplary embodiments relates to displaying, along with the recorded playback, an icon of the input device (e.g., pointer device such as stylus, pen, Wii remote, etc.) on the screen to show where the inputs are occurring in the playback and/or where the inputs should occur if the player were to make them in the game.
Another aspect of certain exemplary embodiments relates to making modifications to the previously recorded input to improve the user's ability to see what is happening, as well as making the playback seem more mechanical and less automatic. Such modifications may include, for example, path smoothing, path correction, automatic snapping, delay periods, speed normalization, and/or the like.
Still another aspect of certain exemplary embodiments relates to a Super Guide that reduces the visual appearance of the organic actions and potentially idiosyncratic behaviors of the person being recorded.
In certain exemplary embodiments, a non-transitory computer readable storage medium tangibly storing instructions that are executable by a processor is provided. The instructions are executable so as to at least enable a user to play a game by running a game program; receive a request for help from the user from within the game program; determine a current state of the game program; determine a next appropriate action for the user based on the current state and the request for help; and cause an annotated display of modified pre-recorded input or series of inputs, selected from a catalog of pre-recorded inputs and/or series of inputs, based on the next appropriate action for the user, to guide the user in accordance with the request for help.
In certain exemplary embodiments, a method of guiding a user of an application program running on a computer system is provided. The user is enabled to use the application program on the computer system. A request for help is received from the user from within the application program. An appropriate next action or next series of actions is determined, via a processor of the computer system, based on the request for help. A visual demonstration is provided to the user regarding how to take the appropriate next action or next series of actions by playing back modified pre-provided input or series of inputs to simulate the appropriate next action or next series of actions to be taken.
According to certain exemplary embodiments, a current state of the application program may be determined and considered in the determining of the appropriate next action or next series of actions, and/or the appropriate next action or next series of actions to be taken may be simulated using one or more visual cues demonstrating how the user is to use a physical input device in connection with a user interface of the application program.
In certain exemplary embodiments, there is provided a computerized system comprising a memory and a processor configured to execute a game program thereon. The game program is programmed to: receive a request for help from the user; determine, via the processor, an appropriate next action or next series of actions based on the request for help; and cause a visual suggestion to be displayed to the user regarding how to use one or more physical input mediums to supply to the game program the appropriate next action or next series of actions, with the visual suggestion including the playing back of annotated versions of modified pre-provided input or series of inputs corresponding to the appropriate next action or next series of actions.
According to certain exemplary embodiments, the modified pre-provided input or series of inputs involve one or more of: a prolongation of at least a portion of the pre-provided input or series of inputs so that the corresponding simulation is visible for at least a predetermined amount of time; a smoothing and/or filtering of at least a portion of the pre-provided input or series of inputs so that the corresponding simulation lacks jitters that otherwise would be present therein if the pre-provided input or series of inputs were reproduced; a removal of at least a portion of the pre-provided input or series of inputs so that the corresponding simulation proceeds more directly from a start point to an end point that otherwise would be present if the pre-provided input or series of inputs were reproduced; a normalization of at least a portion of the pre-provided input or series of inputs so that the corresponding simulation proceeds at either a predetermined pace and/or within a predetermined amount of time; an adjustment of a line so as to snap the line to a grid having cells that are one or more pixels in each dimension such that a straighter line and/or segment of line is/are provided; and/or other modifications.
Modifications to the pre-recorded input or series of inputs may be processed and stored ahead of time so that annotated displays are retrievable from a storage location in certain exemplary embodiments, whereas modifications to the pre-recorded input or series of inputs are processed upon requests for help in other exemplary embodiments. Thus, according to certain exemplary embodiments, a non-transitory storage location may tangibly store the annotated version of the modified pre-provided input or series of inputs, whereas annotations and/or modifications to pre-provided input or series of inputs may be processed and stored in the storage location ahead of time so that annotated displays are retrievable during game program execution by the user in other exemplary embodiments. In either or both cases, the game program may programmed to modify the pre-provided input or series of inputs are processed at runtime.
A game or other application program may be at least temporarily paused during the annotated display of modified pre-recorded input or series of inputs according to certain exemplary embodiments.
According to certain exemplary embodiments, the game program may be output to a first display device and the annotated display may be output to a second display device. for instance, a system may also comprise a console gaming system, a first display device connected to the console gaming system on which a common screen of the game program is displayable, and a plurality of input devices, each said input device being usable by a different user and including a second display device on which an individualized user screen of the game program is displayable. In some cases, a visual suggestion may be displayable only on a second display device of the user requesting help.
In certain exemplary embodiments, a method of developing a guide for an application program is provided. User inputs are captured at a predetermined rate. Captured user inputs are associated with actions or events in the application program. Modification data corresponding to how the captured user inputs are to be modified is generated, via at least one processor, so that, when reproduced, the user inputs appear more mechanical than the captured user inputs. The user inputs are reproducible on a display in modified form based on the modification data.
In certain exemplary embodiments, a non-transitory computer readable storage medium tangibly storing instructions that are executable by a processor is provided to capture user inputs to an application program at a predetermined rate; associate captured user inputs with actions or events in the application program; and generate modification data corresponding to how the captured user inputs are to be modified so that, when reproduced, the user inputs appear more mechanical than the captured user inputs. The user inputs are reproducible on a display in modified form based on the modification data.
In certain exemplary embodiments, a system for developing a guide for an application program includes a processor and a memory. A recording module is configured to capture user inputs at a predetermined rate. A recording sequencer is configured to associate captured user inputs with actions or events in the application program. An annotator is configured to generate modification data corresponding to how the captured user inputs are to be modified so that, when reproduced, the user inputs appear more mechanical than the captured user inputs. The recording module, the recording sequencer, and the annotator are all under control of the processor. The user inputs are reproducible on a display in modified form based on the modification data.
It will be appreciated that these aspects and embodiments may be combined in various combinations and sub-combinations to achieve yet further exemplary embodiments. Also, it will be appreciated that the exemplary embodiments herein may be implemented as any suitable combination of programmed logic circuitry including, for example, hardware, software, firmware, etc. Instructions may be tangibly stored on a non-transitory computer readable storage medium in certain exemplary embodiments.